package com.example.fw;

import java.util.Properties;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;


public class ApplicationManager {
	
	public WebDriver driver;
	public String baseUrl;

	public NavigationHelper navigHelper;
	public GroupHelper groupHelper;
	public ContactHelper contactHelper;
	private Properties properties;
	
	public ApplicationManager(Properties properties) {
		this.properties = properties;
		String browser = properties.getProperty("browser");
		if ("firefox".equals(browser)) {
			driver = new FirefoxDriver();	
		}
		else if ("ie".equals(browser)) {
			driver = new InternetExplorerDriver();	
		}
		else {
			throw new Error("Unsupported browser: " + browser);
		}
		String baseUrl = properties.getProperty("baseUrl");
		driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
		driver.get(baseUrl);
		//navigHelper = new NavigationHelper(this);
		//groupHelper = new GroupHelper(this);
		//contactHelper = new ContactHelper(this);
	}

	

	public void stop() {
	
		driver.quit();
	
	}
	
	public NavigationHelper navigateTo() {
		if (navigHelper == null) {
		navigHelper = new NavigationHelper(this);
	}
		return navigHelper;
	}
	
	public GroupHelper getGroupHelper() {
		if (groupHelper == null) {
			groupHelper = new GroupHelper(this);
	}
		return groupHelper;
	}
	
	public ContactHelper getContactHelper() {
		if (contactHelper == null) {
			contactHelper = new ContactHelper(this);
	}
		return contactHelper;
	}
}
